package sv.gob.mh.dgii.model;

// Generated Apr 28, 2010 4:04:55 PM by Hibernate Tools 3.3.0.GA

import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * GoTecnico generated by hbm2java
 */
@Entity
@Table(name = "GO_TECNICO", schema = "GESOMISOS")
@SequenceGenerator(name = "seq_go_tecnico", sequenceName = "seq_go_tecnico")
public class GoTecnico implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 3502332702907710672L;
	private Long itecnico;
	private GoTecnico goTecnicoByITecnicoCompanero;
	private GoTecnico goTecnicoByITecnicoSuperior;
	private RcRuc rcRuc;
	private String cusuario;
	private Date fhIngreso;
	private Date fhUltModificacion;
	private Date fhFinalizacion;
	private String cacceso;
	private String crol;
	private String semail;
	private Integer bstatus;
	private String cunidad;
	private Set<GoTecnico> goTecnicosForITecnicoSuperior = new HashSet<GoTecnico>(
			0);
	private Set<GoTecnico> goTecnicosForITecnicoCompanero = new HashSet<GoTecnico>(
			0);
	private Set<GoCasoTecnico> goCasoTecnicos = new HashSet<GoCasoTecnico>(0);
	private Set<GoCasoDocumento> goCasoDocumentos = new HashSet<GoCasoDocumento>(
			0);

	public GoTecnico() {
	}

	public GoTecnico(Long itecnico, RcRuc rcRuc, String cacceso) {
		this.itecnico = itecnico;
		this.rcRuc = rcRuc;
		this.cacceso = cacceso;
	}

	public GoTecnico(Long itecnico, GoTecnico goTecnicoByITecnicoCompanero,
			GoTecnico goTecnicoByITecnicoSuperior, RcRuc rcRuc,
			String cusuario, Date fhIngreso, Date fhUltModificacion,
			Date fhFinalizacion, String cacceso, String crol, String semail,
			Integer bstatus, String cunidad,
			Set<GoTecnico> goTecnicosForITecnicoCompanero,
			Set<GoTecnico> goTecnicosForITecnicoSuperior,
			Set<GoCasoTecnico> goCasoTecnicos) {
		this.itecnico = itecnico;
		this.goTecnicoByITecnicoCompanero = goTecnicoByITecnicoCompanero;
		this.goTecnicoByITecnicoSuperior = goTecnicoByITecnicoSuperior;
		this.rcRuc = rcRuc;
		this.cusuario = cusuario;
		this.fhIngreso = fhIngreso;
		this.fhUltModificacion = fhUltModificacion;
		this.fhFinalizacion = fhFinalizacion;
		this.cacceso = cacceso;
		this.crol = crol;
		this.semail = semail;
		this.bstatus = bstatus;
		this.cunidad = cunidad;
		this.goTecnicosForITecnicoCompanero = goTecnicosForITecnicoCompanero;
		this.goTecnicosForITecnicoSuperior = goTecnicosForITecnicoSuperior;
		this.goCasoTecnicos = goCasoTecnicos;
	}

	/**
	 * @return the itecnico
	 */
	@Id
	@Column(name = "I_TECNICO", unique = true, nullable = false, precision = 10, scale = 0)
	@GeneratedValue(generator = "seq_go_tecnico", strategy = GenerationType.AUTO)
	public Long getItecnico() {
		return itecnico;
	}

	/**
	 * @param itecnico
	 *            the itecnico to set
	 */
	public void setItecnico(Long itecnico) {
		this.itecnico = itecnico;
	}

	/**
	 * @return the goTecnicoByITecnicoCompanero
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "I_TECNICO_COMPANERO")
	public GoTecnico getGoTecnicoByITecnicoCompanero() {
		return goTecnicoByITecnicoCompanero;
	}

	/**
	 * @param goTecnicoByITecnicoCompanero
	 *            the goTecnicoByITecnicoCompanero to set
	 */
	public void setGoTecnicoByITecnicoCompanero(
			GoTecnico goTecnicoByITecnicoCompanero) {
		this.goTecnicoByITecnicoCompanero = goTecnicoByITecnicoCompanero;
	}

	/**
	 * @return the goTecnicoByITecnicoSuperior
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "I_TECNICO_SUPERIOR")
	public GoTecnico getGoTecnicoByITecnicoSuperior() {
		return goTecnicoByITecnicoSuperior;
	}

	/**
	 * @param goTecnicoByITecnicoSuperior
	 *            the goTecnicoByITecnicoSuperior to set
	 */
	public void setGoTecnicoByITecnicoSuperior(
			GoTecnico goTecnicoByITecnicoSuperior) {
		this.goTecnicoByITecnicoSuperior = goTecnicoByITecnicoSuperior;
	}

	/**
	 * @return the rcRuc
	 */
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "NIT")
	public RcRuc getRcRuc() {
		return rcRuc;
	}

	/**
	 * @param rcRuc
	 *            the rcRuc to set
	 */
	public void setRcRuc(RcRuc rcRuc) {
		this.rcRuc = rcRuc;
	}

	/**
	 * @return the cusuario
	 */
	@Column(name = "C_USUARIO", length = 30)
	public String getCusuario() {
		return cusuario;
	}

	/**
	 * @param cusuario
	 *            the cusuario to set
	 */
	public void setCusuario(String cusuario) {
		this.cusuario = cusuario;
	}

	/**
	 * @return the fhIngreso
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_INGRESO", length = 7)
	public Date getFhIngreso() {
		return fhIngreso;
	}

	/**
	 * @param fhIngreso
	 *            the fhIngreso to set
	 */
	public void setFhIngreso(Date fhIngreso) {
		this.fhIngreso = fhIngreso;
	}

	/**
	 * @return the fhUltModificacion
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_ULT_MODIFICACION", length = 7)
	public Date getFhUltModificacion() {
		return fhUltModificacion;
	}

	/**
	 * @param fhUltModificacion
	 *            the fhUltModificacion to set
	 */
	public void setFhUltModificacion(Date fhUltModificacion) {
		this.fhUltModificacion = fhUltModificacion;
	}

	/**
	 * @return the fhFinalizacion
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_FINALIZACION", length = 7)
	public Date getFhFinalizacion() {
		return fhFinalizacion;
	}

	/**
	 * @param fhFinalizacion
	 *            the fhFinalizacion to set
	 */
	public void setFhFinalizacion(Date fhFinalizacion) {
		this.fhFinalizacion = fhFinalizacion;
	}

	/**
	 * @return the cacceso
	 */
	@Column(name = "C_ACCESO", nullable = false, length = 1)
	public String getCacceso() {
		return cacceso;
	}

	/**
	 * @param cacceso
	 *            the cacceso to set
	 */
	public void setCacceso(String cacceso) {
		this.cacceso = cacceso;
	}

	/**
	 * @return the crol
	 */
	@Column(name = "C_ROL", length = 50)
	public String getCrol() {
		return crol;
	}

	/**
	 * @param crol
	 *            the crol to set
	 */
	public void setCrol(String crol) {
		this.crol = crol;
	}

	/**
	 * @return the semail
	 */
	@Column(name = "S_EMAIL", length = 100)
	public String getSemail() {
		return semail;
	}

	/**
	 * @param semail
	 *            the semail to set
	 */
	public void setSemail(String semail) {
		this.semail = semail;
	}

	/**
	 * @return the bstatus
	 */
	@Column(name = "B_STATUS", precision = 1, scale = 0)
	public Integer getBstatus() {
		return bstatus;
	}

	/**
	 * @param bstatus
	 *            the bstatus to set
	 */
	public void setBstatus(Integer bstatus) {
		this.bstatus = bstatus;
	}

	/**
	 * @return the cunidad
	 */
	@Column(name = "C_UNIDAD", length = 5)
	public String getCunidad() {
		return cunidad;
	}

	/**
	 * @param cunidad
	 *            the cunidad to set
	 */
	public void setCunidad(String cunidad) {
		this.cunidad = cunidad;
	}

	/**
	 * @return the goTecnicosForITecnicoSuperior
	 */
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "goTecnicoByITecnicoSuperior")
	public Set<GoTecnico> getGoTecnicosForITecnicoSuperior() {
		return goTecnicosForITecnicoSuperior;
	}

	/**
	 * @param goTecnicosForITecnicoSuperior
	 *            the goTecnicosForITecnicoSuperior to set
	 */
	public void setGoTecnicosForITecnicoSuperior(
			Set<GoTecnico> goTecnicosForITecnicoSuperior) {
		this.goTecnicosForITecnicoSuperior = goTecnicosForITecnicoSuperior;
	}

	/**
	 * @return the goTecnicosForITecnicoCompanero
	 */
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "goTecnicoByITecnicoCompanero")
	public Set<GoTecnico> getGoTecnicosForITecnicoCompanero() {
		return goTecnicosForITecnicoCompanero;
	}

	/**
	 * @param goTecnicosForITecnicoCompanero
	 *            the goTecnicosForITecnicoCompanero to set
	 */
	public void setGoTecnicosForITecnicoCompanero(
			Set<GoTecnico> goTecnicosForITecnicoCompanero) {
		this.goTecnicosForITecnicoCompanero = goTecnicosForITecnicoCompanero;
	}

	/**
	 * @return the goCasoTecnicos
	 */
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "goTecnico")
	public Set<GoCasoTecnico> getGoCasoTecnicos() {
		return goCasoTecnicos;
	}

	/**
	 * @param goCasoTecnicos
	 *            the goCasoTecnicos to set
	 */
	public void setGoCasoTecnicos(Set<GoCasoTecnico> goCasoTecnicos) {
		this.goCasoTecnicos = goCasoTecnicos;
	}

	/**
	 * @return the goCasoDocumentos
	 */
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "goTecnico")
	public Set<GoCasoDocumento> getGoCasoDocumentos() {
		return goCasoDocumentos;
	}

	/**
	 * @param goCasoDocumentos the goCasoDocumentos to set
	 */
	public void setGoCasoDocumentos(Set<GoCasoDocumento> goCasoDocumentos) {
		this.goCasoDocumentos = goCasoDocumentos;
	}

}
